草庐IT

PaaS 平台,让固定资产业务场景随需而动

全部标签

c# - 常量是否固定在 C# 中?

我在C#中使用BorlandCAPI工作,该API使用大量字节指针来表示字符串。我一直面临将一些C#字符串作为(短暂的)字节*传递的需要。我的自然假设是const对象不会分配到堆上,而是直接存储在程序内存中,但我无法在任何文档中验证这一点。这是我为生成指向常量字符串的指针所做的示例。这确实在测试中按预期工作,我只是不确定它是否真的安全,或者它只是靠运气。privateconststringpinnedStringGetWeight="getWeight";unsafepublicstaticbyte*ExampleReturnWeightPtr(intserial){fixed(byt

c# - Specflow 在具有场景上下文的表中使用参数

我在C#中使用Specflow来使用Selenium构建自动客户端浏览器测试。这些测试的目标是模拟客户在特定页面进入我们网站的业务场景,然后他被引导到正确的页面。我想在场景上下文中使用参数,例如:WhenIvisiturl|base|page|parameter1|parameter2||http://www.stackoverflow.com|questions|||ThenbrowsercontainstestExamples:||||123|specflow-q1||456|specflow-q2||789|specflow-q3|注意:“当我访问url”步骤采用base+pag

c# - 使用 IServiceCollection.AddTransient、IServiceCollection.AddSingleton 和 IServiceCollectionAddScoped 方法的实际场景有哪些?

看完this帖子我可以理解AddTransient、AddScoped和AddSingleton之间的区别,但是,我看不到它们每个的实际用法。我的理解是添加transient每次客户端请求时创建一个新实例。services.AddTransient();每次客户端代码请求时都会返回一个新的DataAccess对象。更有可能是构造函数。AddTransient的用法在我们必须访问数据库以读取和更新它并销毁访问对象(DataAccess)的情况下,最好使用AddTransient-不确定线程​​安全性。AddScoped为每个http网络请求创建一个新实例。AddScoped的使用serv

c# - 为 .Net 平台编写 DSL

我正在考虑写一个DSL在.Net环境中运行。我最有可能在C#中实现它,尽管我对此很灵活。是否有推荐的在线资源显示为.Net平台编写DSL所涉及的主要步骤?理想情况下,我希望资源至少提供以下方面的概述:“规范”DSL如何将规范映射到.Net框架最好是用.Net语言实现的普通DSL的helloworld示例[编辑]其实我刚刚看到了thisarticle-但它有点过时了。有没有人对这篇文章是否是一个好的起点有看法(.Net框架和C#似乎以非常快的速度发展) 最佳答案 如果你愿意买一本关于这个主题的书,我强烈推荐"DSLsinBoo:Dom

c# - 如何从 Azure Active Directory 获取客户端 secret 以使用一个驱动器业务 API 的 native 应用程序?

我正在开发一个outlook插件。我想在其中使用一个驱动器API。我很容易获得用于一个驱动器个人帐户的API的客户端ID和客户端密码。但是,当我为一个驱动器业务API注册我的应用程序时天蓝色的事件目录,它只为我创建了一个客户端ID,但没有创建任何客户端密码。我在注册时选择了native应用程序,因为我的应用程序是native应用程序。没有客户端密码我无法对用户进行身份验证。请告诉我,如何获取客户端密码?提前致谢。 最佳答案 创建应用程序并单击键。根据需要添加一些描述和到期时间,然后单击保存。key将自动生成。确保复制并保存key,否

c# - 从内存位置复制字节时是否需要固定结构

我在C#中定义了一个结构来镜像native数据结构,并使用了Sequential的StructLayout。为了将结构转换为SocketIOControl方法所需的12字节(3x4字节),我使用Marshal.Copy将字节复制到数组。由于结构只包含值类型,我是否需要在执行复制之前固定结构?我知道GC会压缩堆,因此引用类型的内存地址可能会在GC期间发生变化。堆栈分配的值类型也是如此吗?包含pin操作的当前版本如下所示:[StructLayout(LayoutKind.Sequential,Pack=1)]structTcpKeepAliveConfiguration{publicuin

c# - 用于跨平台 Xamarin Forms 的用户控件

我已经找了很长时间了,但仍然没有找到一种方法来为跨平台XamarinForms创建类似UserControls的WPF。这甚至可以做到吗?我在VisualStudio2013中使用Xamarin。 最佳答案 这是一个XAML示例。只需添加,您就可以拥有任何基本视觉元素。例如。网格、StackLayout、图像等。下面是代码namespaceMobile.Control{publicpartialclassUserControl:Grid{publicUserControl(){InitializeComponent();}}}要使用

c# - 每个应用程序 session 的 Nlog 固定文件名

我正在使用Nlog从我的C#应用程序中登录。以下是我的Nlog.config部分:对于filename我正在使用${date:format=yyyyMMdd_HHmmss}_trg.log根据创建时间命名日志。但是,当我的应用程序运行时,记录器每秒创建一个新的日志文件。如何强制Nlog修复文件名并在每个session中只创建一个日志? 最佳答案 我不确定,但我的猜测是NLog根据文件名属性(这是动态的,因为您使用的是日期布局渲染器)检查日志文件是否存在。因此,由于文件名在变化(即每次检索到的文件名值都不同(或可能不同)),NLog会

c# - 在您的业务逻辑中使用反射是好的做法吗?

我需要开发一个包含两个主要部分的应用程序:具有特定业务类(例如书籍、图书馆、作者...)的业务逻辑部分一个通用部分,可以在数据网格中显示书籍、图书馆......,将它们映射到数据库......)。通用部分使用反射从业务类中获取数据,而无需在业务类中编写特定的数据网格或数据库逻辑。这工作正常,允许我们添加新的业务类(例如LibraryMember),而无需调整数据网格和数据库逻辑。然而,多年来,代码被添加到业务类中,这些代码也利用反射来完成业务类中的事情。例如。如果一本书的作者改变了,观察者被调用来告诉作者本身应该将这本书添加到他所写的书籍集合中(Author.Books)。在这些观察者

c# - 业务验证逻辑代码异味

考虑以下代码:partialclassOurBusinessObject{partialvoidOnOurPropertyChanged(){if(ValidateOurProperty(this.OurProperty)==false){this.OurProperty=OurBusinessObject.Default.OurProperty;}}}即当OurBusinessObject中OurProperty的值发生变化时,如果该值无效,则将其设置为默认值。这种模式让我觉得代码有味道,但这里的其他人(在我的雇主那里)不同意。你有什么想法?编辑添加:我被要求添加一个解释,说明为什么